import { _decorator, Component, Label, Node, ProgressBar, resources } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('progressCtrl')
export class progressCtrl extends Component {
    // 进度条的父节点
    @property(Node)
    progressBarNode: Node = null;
    // 进度条显示
    @property(Label)
    progressData: Label = null;
    // 加载资源提示标签
    @property(Label)
    loadTip: Label = null;
    // 登录弹窗节点
    @property(Node)
    loginNode: Node = null;

    private _nowTime: number = 0; // 当前时间
    private _maxTime: number = 10; // 最大时间
    private _progressBar: ProgressBar = null; // 进度条组件
    private _compDegree: number = 0; // 完成度
    private _comFlag: boolean = false; // 完成标志

    protected onLoad(): void {
        this._progressBar = this.progressBarNode.getComponent(ProgressBar); // 获取进度条组件
        this.loadSources();
    }

    protected update(dt: number): void {
        if (this._comFlag) {
            this.loadTip.string = "即将进入游戏, 请稍后...";
        } else {
            this._progressBar.progress = this._compDegree; // 设置进度条进度
            this.progressData.string = parseInt(this._compDegree * 100 + '') + "%"; // 设置进度条显示
        }
    }

    // 加载资源
    loadSources() {
        this.loadTip.string = "正在加载资源...";
        // 创建textures文件夹把images文件夹放到里面  compCount:已经加载的资源数量  totalCount:需要加载的资源数量
        resources.loadDir('textures', (compCount, totalCount) => { 
            this._compDegree = compCount / totalCount; // 计算完成度
        }, (err, assets) => {
            if (err) {
                console.log(err);
            } else {
                this._comFlag = true;
                this.loadTip.string = "资源加载完成";
                this.node.active = false; // 隐藏进度条
                this.loginNode.active = true; // 显示登录界面
            }
        })
    }
}


